package com.yswee.framework.net;

import java.net.HttpURLConnection;


public interface ICallback<ENTITY extends Entity> {
	
	/**
	 * 网络请求初始化前（非UI线程）
	 * @param entity
	 */
	public void onBeginRequest(ENTITY entity);
	
	/**
	 * 网络请求初始化后发起连接前（非UI线程）
	 * @param connection
	 */
	public void onBeginConnection(HttpURLConnection connection);

	/**
	 * 网络请求已返回（非UI线程）
	 * @param connection
	 */
	public void onBeginResponse(HttpURLConnection connection);
	
	/**
	 * 网络请求已处理完（非UI线程）
	 * @param entity
	 */
	public void onEndResponse(ENTITY entity);
	
	/**
	 * 网络请求已完成（UI线程）
	 * @param entity
	 */
	public void onFinish(ENTITY entity);

	/**
	 * 网络请求发生错误（UI线程）
	 * @param entity
	 */
	public void onError(ENTITY entity);

	/**
	 * 网络请求已取消（UI线程）
	 * @param entity
	 */
	public void onCancel(ENTITY entity);
	
	/**
	 * invalid请求已取消（UI线程）
	 * @param entity
	 */
	public void onInvalid(ENTITY entity);
	
}
